package com.bluemson.dao;

import com.bluemson.entity.Article;
import com.bluemson.entity.Plate;
import com.bluemson.entity.User;

import java.util.List;

/**
 * @author mac
 */
public interface ManagerDao {
    /**
     * 添加板块本身
     * @param plate
     */
    void addPlateSelf(Plate plate);

    /**
     *查找name对应板块，并判断是否为空，达到不新建重名板块的作用
     * @param plate
     * @return List<Plate>
     */
    List<Plate> checkPlate(Plate plate);

    /**
     *添加板块版主关系
     * @param plate
     * @return Plate
     */
    Plate addPlateHost(Plate plate);

    /**
     * 删除板块
     * @param plate
     */
    void deletePlate(Plate plate);

    /**
     * 删除版主板块关系
     * @param plate
     */
    void deleteHost(Plate plate);

    /**
     * 更新板块名字
     * @param plate
     */
    void updatePlate(Plate plate);

    /**
     * 添加封面
     * @param plate
     */
    void updateCover(Plate plate);

    /**
     * 修改帖子板块
     * @param article
     */
    void moveArticle(Article article);

    /**
     * 置顶帖子
     * @param id
     */
    void topArticle(int id);

    /**
     * 取消置顶帖子
     * @param id
     */
    void noTopArticle(int id);

    /**
     * 删除评论
     * @param id
     */
    void deleteComment(int id);

    /**
     * 减少帖子评论数量
     * @param articleId
     */
    void deComment(int articleId);

    /**
     * 删除帖子
     * @param id
     */
    void deleteArticle(int id);

    /**
     * 搜索用户（模糊）
     * @param username
     * @return
     */
    List<User> searchUser(String username);

    /**
     * 检查该用户是否为版主
     * @param username
     * @return
     */
    Plate checkHost(String username);

    /**
     * 检查该版主是否已管理该板块
     * @param plate
     * @return
     */
    List<Plate> checkPlateHost(Plate plate);
}
